package utils

import (
	"fmt"
	"net"
	"time"
)

// IsPortAvailable 检查指定端口是否可用
func IsPortAvailable(port int) bool {
	address := fmt.Sprintf(":%d", port)
	conn, err := net.DialTimeout("tcp", address, 500*time.Millisecond)

	if err != nil {
		// 端口无法连接，说明可能是可用的
		return true
	}

	// 如果能连接，说明端口被占用
	if conn != nil {
		conn.Close()
		return false
	}

	return true
}
